package com.logicalthinking.socialmall.service;

import com.github.chenlijia1111.utils.common.Result;
import java.util.List;
import java.util.Optional;

import com.logicalthinking.socialmall.common.vo.requestVo.clientUser.ClientListQueryParams;
import com.logicalthinking.socialmall.common.vo.responseVo.clientUser.ClientUserListVo;
import com.logicalthinking.socialmall.entity.ClientUser;

/**
 * 客户端用户
 * @author chenLiJia
 * @since 2020-02-17 14:43:59
 **/
public interface ClientUserServiceI {

    /**
     * 添加
     *
     * @param params      1
     * @return com.github.chenlijia1111.utils.common.Result
     * @author chenLiJia
     * @since 2020-02-17 14:43:59
     **/
    Result add(ClientUser params);

    /**
     * 添加
     *
     * @param params      1
     * @return com.github.chenlijia1111.utils.common.Result
     * @author chenLiJia
     * @since 2020-02-17 14:43:59
     **/
    Result update(ClientUser params);

    /**
     * 条件查询
     *
     * @param condition      1
     * @return      * @author chenLiJia
     * @since 2020-02-17 14:43:59
     **/
    List<ClientUser> listByCondition(ClientUser condition);

    /**
     * 通过id查询用户信息
     * @param id
     * @return
     */
    ClientUser findById(Integer id);


    /**
     * 获取当前用户
     * @return
     */
    Optional<ClientUser> currentUser();

    /**
     * 列表查询
     * @param params
     * @return
     */
    List<ClientUserListVo> listPage(ClientListQueryParams params);

    /**
     * 关联查询用户列表信息
     * @param list
     */
    void getFullInfo(List<? extends ClientUserListVo> list);

}
